package com.ruoyi.quartz.util;

import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext;
import com.ruoyi.quartz.domain.SysJob;

/**
 * 定时任务处理（禁止并发执行）
 * Quartz定时任务默认是并发执行的，不会等待上一次任务执行完毕再执行下一个任务，也就是说当到达间隔时间就会执行对应的任务。
 * 如果定时任执行太长，会长时间占用着资源，同时会出现多个线程并存的情况，导致其它任务堵塞。
 * @author ruoyi
 *
 */
@DisallowConcurrentExecution
public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob
{
    @Override
    protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception
    {
        JobInvokeUtil.invokeMethod(sysJob);
    }
}
